package com.shujia.spark.sql

import org.apache.spark.sql.{DataFrame, SparkSession}
import org.apache.spark.storage.StorageLevel

object Demo10SparkOnHIve {
  def main(args: Array[String]): Unit = {
    val spark: SparkSession = SparkSession
      .builder()
      .appName("onhive")
      .enableHiveSupport() //开启hive的元数据支持，在代码中读取hive的元数据
      .getOrCreate()

    import spark.implicits._
    import org.apache.spark.sql.functions._

    /**
     * 当spark sql和hive整合好之后可以在代码中直接读取hive中额表
     *
     */
    spark.sql("show tables").show()

    /**
     * 通过表名得到一个DF
     *
     */
    val studentDF: DataFrame = spark.table("student")


    /**
     * 缓存DF
     *
     */

    studentDF.persist(StorageLevel.MEMORY_ONLY)

    studentDF
      .groupBy($"clazz")
      .agg(count($"clazz"))
      .show()


  }

}
